06 新手练兵 - Linux 基础指令 -3
du 查看文件或目录的大小
du命令来自英文词组disk usage的缩写,其功能是查看文件或目录的大小。- 人们经常会把
df和du命令混淆,df是用于查看磁盘或分区使用情况的命令,而du命令则是用于按照指定容量单位来查看文件或目录在磁盘中的占用情况。 - 语法格式:
du 参数 文件名
常用参数
| 参数 | 描述 |
|---|---|
-a | 显示目录中所有文件大小 |
-b | 以 B 为单位显示文件大小 |
-c | 显示占用磁盘空间的大小总和 |
-D | 显示符号链接对应原文件的大小 |
-g | 以 GB 为单位显示文件大小 |
-h | 使用易读格式显示文件大小 |
-k | 以 KB 为单位显示文件大小 |
-m | 以 MB 为单位显示文件大小 |
-P | 不显示符号链接对应原文件的大小 |
-s | 显示子目录总大小 |
-S | 不显示子目录大小 |
-X | 排除指定文件 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
常用命令
| 命令 | 描述 |
|---|---|
du | 显示当前文件夹下的总大小,以 KB(千字节) 为单位 |
du -s | 显示当前文件夹下总大小,以字节为单位,-s 选项用于汇总 |
du -sh | 以人类可读的单位显示文件夹总大小,-sh 选项结合了 -s(汇总)和 -h(人类可读) |
du -sh [dir] | 以人类可读的单位显示 [dir] 文件夹的总大小 |
du -h ./* | 以人类可读的单位显示文件夹下各文件的大小 |
du -h /etc以可读的格式(如 KB、MB、GB)显示/etc目录及其子目录的磁盘使用情况。du -sh /Dir以可读的格式显示/Dir目录的总磁盘使用情况,不包括子目录的磁盘使用情况。du File.cfg显示File.cfg文件的磁盘使用情况。这个命令没有指定可读的格式,因此默认显示以块为单位的大小。
df 显示磁盘空间使用量情况
df命令来自英文词组report file system disk space usage的缩写,其功能是显示系统上磁盘空间的使用量情况。df命令显示的磁盘使用量情况含可用、已用及使用率等信息,默认单位为KB,建议使用-h参数进行单位换算,毕竟 135MB 比 138240KB 更利于阅读。- 语法格式:
df 参数 对象磁盘/分区
常用参数
| 参数 | 描述 |
|---|---|
-a | 显示所有文件系统 |
-h | 以更易读的方式显示 |
-H | 以 1KB=1000B 为换算单位 |
-i | 显示索引节点信息 |
-k | 设置显示时的块大小 |
-l | 只显示本地文件系统 |
-t | 只显示指定类型文件系统 |
-T | 显示文件系统的类型 |
--sync | 在获取磁盘使用信息前先执行 sync 同步命令 |
常用命令
| 命令 | 描述 |
|---|---|
df | 显示文件系统的磁盘使用情况统计 |
df -h | 以人类可读的单位显示文件系统的磁盘使用情况统计 |
df -h显示所有已挂载文件系统的磁盘空间使用情况,包括总大小、已使用、可用空间和挂载点,使用人类可读的格式(如 KB、MB、GB)。df -h /boot显示/boot文件系统的磁盘空间使用情况,包括总大小、已使用、可用空间和挂载点,使用人类可读的格式。df -t xfs显示所有类型为 XFS 的已挂载文件系统的磁盘空间使用情况,包括总大小、已使用、可用空间和挂载点,但不使用人类可读的格式。如果需要可读的格式,可以添加-h选项。
ping 测试主机间网络连通性
ping命令的功能是测试主机间网络的连通性,它发送出基于 ICMP 传输协议的数据包,要求对方主机予以回复。若对方主机的网络功能没有问题且防火墙放行流量,则就会回复该信息,我们也就可得知对方主机系统在线并运行正常了。不过值得注意的是,
ping命令在 Linux 下与在 Windows 下有一定差异,Windows 系统下的ping命令会发送出去 4 个请求后自动结束该命令;而 Linux 系统则不会自动终止,需要用户手动按下Ctrl + C组合键才能结束,或是发起命令时加入-c参数限定发送数据包的个数。语法格式:
ping 参数 域名或 IP 地址
常用参数
| 参数 | 描述 |
|---|---|
-4 | 基于 IPv4 网络协议 |
-6 | 基于 IPv6 网络协议 |
-a | 发送数据时发出鸣响声 |
-b | 允许 ping 一个广播地址 |
-c | 设置发送数据包的次数 |
-d | 使用接口的 SO_DEBUG 功能 |
-f | 使用泛洪模式大量向目标发送数据包 |
-h | 显示帮助信息 |
-i | 设置收发信息的间隔时间 |
-I | 使用指定的网络接口送出数据包 |
-n | 仅输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 静默执行模式 |
-R | 记录路由过程信息 |
-s | 设置数据包的大小 |
-t | 设置存活数值 TTL 的大小 |
-v | 显示执行过程详细信息 |
-V | 显示版本信息 |
常用命令
| 命令 | 描述 |
|---|---|
ping [主机名称或IP地址] | 测试当前主机与指定主机或 IP 地址的连通性 需按 Ctrl + C 手动终止 |
ping [主机名称或IP地址] -c [num] | 指定 ping 命令执行的次数 |
ping [主机名称或IP地址] -i [second] | 以固定间隔(秒)ping 指定的主机或 IP 地址 |
ping [主机名称或IP地址] -c [num] -i [second] -W [timeout] | 执行指定次数的 ping,间隔指定秒数,每次等待回复的超时时间 |
ping www.linuxcool.com发送 ICMP echo 请求到www.linuxcool.com,直到被用户中断(通常通过 Ctrl+C)。ping -c 4 192.168.10.10发送 4 个 ICMP echo 请求到 IP 地址192.168.10.10,然后停止。ping -c 4 www.linuxcool.com发送 4 个 ICMP echo 请求到www.linuxcool.com,然后停止。ping -c 3 -i 0.2 -W 3 192.168.10.10发送 3 个 ICMP echo 请求到 IP 地址192.168.10.10,每个请求间隔 0.2 秒,并且设置超时时间为 3 秒。如果 3 秒内没有收到任何回复,则认为目标主机不可达。其中-i选项设置发送 ping 请求的间隔时间,而-W选项设置等待回复的超时时间。
tar 压缩和解压缩文件
tar命令来自英文词组tape archieve(磁带存档) 的缩写,其功能是压缩和解压缩文件,能够制作出 Linux 系统中常见的tar、tar.gz、tar.bz2等格式的压缩包文件。- 对于 RHEL 7、CentOS 7 版本及以后的系统,解压缩时不添加格式参数(如 z 或 j),系统也能自动进行分析并解压。把要传输的文件先压缩再传输,能够很好地提高工作效率,方便分享。
- 语法格式:
tar 参数 压缩包名 文件或目录名
常用参数
| 参数 | 描述 |
|---|---|
-A | 添加文件到已存在的压缩包 (append) |
-B | 设置区块大小 (block size) |
-c | 创建新的压缩 (create) |
-C | 解压缩到指定目录 (directory) |
-d | 记录文件的差别 (diff) |
-f | 指定压缩包文件 (file) |
-j | 使用 bzip2 压缩格式 (bzip2) |
-l | 设置文件系统边界 (one-file-system) |
-m | 保护文件不被覆盖 (keep old files) |
-N | 只将较新日期的文件保存到压缩包中 (newer) |
-p | 保留原来的文件权限与属性 (preserve-permissions) |
-P | 使用绝对路径 (absolute path) |
-t | 显示压缩包的内容 (list) |
-u | 更新压缩包内的文件 (update) |
-v | 显示执行过程详细信息 (verbose) |
-w | 确认压缩包的完整性 (verify) |
-x | 从压缩包内提取文件 (extract) |
-z | 使用 gzip 压缩格式 (gzip) |
--exclude | 排除指定的文件不压缩 (exclude) |
--remove-files | 操作完成后删除源文件 (remove files) |
常用命令
| 命令 | 描述 |
|---|---|
tar -zcvf [tar_name].tar.gz [file/dir] | 将 [file/dir] 压缩为 [tar_name].tar.gz 文件(使用 gzip 压缩格式打包压缩) |
tar -cvf [tar_name].tar [file/dir] | 将 [file/dir] 压缩为 [tar_name].tar 文件(文件打包,不进行压缩) |
tar -jcvf [tar_name].tar.bz2 [file/dir] | 将 [file/dir] 压缩为 [tar_name].tar.bz2 文件(使用 bzip2 压缩格式打包压缩) |
tar -tzvf [tar_name].tar.gz | 列出 [tar_name].tar.gz 的文件 |
tar -zxvf [tar_name].tar.gz | 解压 [tar_name].tar.gz 文件到当前目录 |
tar czvf File.tar.gz /etc创建一个名为File.tar.gz的压缩归档文件,该文件包含/etc目录下的所有文件和目录。tar cjvf File.tar.bz2 /etc创建一个名为File.tar.bz2的压缩归档文件,该文件包含/etc目录下的所有文件和目录。tar cvf File.tar *.cfg创建一个名为File.tar的归档文件,包含当前目录下所有扩展名为.cfg的文件。tar cvf File.tar *.cfg --remove-files创建一个名为File.tar的归档文件,包含当前目录下所有扩展名为.cfg的文件,并在归档完成后删除这些源文件。tar xvf File.tar解压File.tar归档文件到当前目录。tar xvf File.tar -C /etc解压File.tar归档文件到/etc目录。tar tvf File.tar列出File.tar归档文件的内容,但不解压文件。
find 根据路径和条件搜索指定文件
find命令的功能是根据给定的路径和条件查找相关文件或目录,其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是 Linux 系统运维人员必须掌握的命令之一。find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate等有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,这会相对消耗较多的系统资源。- 语法格式:
find 路径 条件 文件名
常用参数
| 参数 | 描述 |
|---|---|
-atime | 匹配最后读取文件内容时间 (access time) |
-ctime | 匹配最后修改文件属性时间 (change time) |
-exec | 进一步处理搜索结果 (execute) |
-group | 匹配文件所属组 (group) |
-name | 匹配文件名 (name) |
-newer | 匹配比指定文件更新的文件 (newer) |
-nogroup | 匹配无所属组的文件 (no group) |
-nouser | 匹配无所属主的文件 (no user) |
-perm | 匹配文件权限 (permissions) |
-prune | 不搜索指定目录 (prune) |
-size | 匹配文件大小 (size) |
-type | 匹配文件类型 (type) |
-user | 匹配文件所属主 (user) |
-mtime | 匹配最后修改文件内容时间 (modify time) |
常用命令
| 命令 | 描述 |
|---|---|
find ./ -name file*txt | 在当前文件夹下查找文件名以 file 开头,以 txt 结尾的文件/文件夹。file*txt 是一个通配符表达式 |
find ./ -type f | 在当前文件夹下查找类型为文件(file)的文件 |
find ./ -type d | 在当前文件夹下查找类型为目录(directory)的文件 |
find .列出当前目录及其所有子目录下的所有文件和目录。find / -name *.conf在根目录及其所有子目录下查找所有以.conf结尾的文件。find /etc -size +1M在/etc目录及其所有子目录下查找大小超过 1MB 的文件。find /home -user linuxprobe在/home目录及其所有子目录下查找属于用户linuxprobe的文件。find /var/log -name "*.log"在/var/log目录及其所有子目录下查找所有以.log结尾的文件。find /var/log ! -name "*.log"在/var/log目录及其所有子目录下查找所有不以.log结尾的文件。find . -mtime +7列出当前目录及其所有子目录下修改时间超过 7 天的文件。find / -type d -perm 1777在根目录及其所有子目录下查找权限设置为1777的目录。find / -type f -perm /a=x在根目录及其所有子目录下查找所有可执行文件,即任何用户都有执行权限的文件。find / -name "*.mp4" -exec rm -rf {} \;在根目录及其所有子目录下查找所有以.mp4结尾的文件,并执行rm -rf命令删除这些文件及其所在的目录。
任务处理相关指令
| 命令 | 描述 |
|---|---|
Ctrl + C | 停止当前正在运行的任务 |
Ctrl + Z | 暂停当前正在运行的任务 |
[process] & | 后台运行 [process] 指令 |
> | 输出重定向 |
>/dev/null & | 后台执行并不输出 |
fg [N] | 恢复被挂起的任务,[N] 表示任务编号 |
jobs | 查看后台任务 ID |
bg [N] | 将被挂起的任务放到后台执行 |
kill [N] | 终止任务,[N] 表示任务编号 |
killall [cmd] | 终止所有以 [cmd] 开头的任务 |
man [cmd] | 查看 [cmd] 的详尽文档 |